#!/usr/bin/env python3
# -*- coding: utf-8 -*-
###----------1、文件说明----------###
'''
* 说明：邮件管理
* 时间：2024-10-26 11:17:41
* 文件：
* 作者：Smile
* 版本：0.1
* 备注：
* 示例：
python mailInform.py AppBuild 编译状态 编译完成，请接收

'''
###----------2、库导入----------###
import os, sys
import imaplib
import smtplib
import email
from email.header import decode_header
# 导入smtplib模块
import smtplib

# 从email.mime.multipart中导入MIMEMultipart类
from email.mime.multipart import MIMEMultipart
# 从email.header中导入Header类
from email.header import Header

# 从email.mime.text中导入MIMEText类
from email.mime.text import MIMEText

# 从email.mime.image中导入MIMEImage类
from email.mime.image import MIMEImage
###----------3、参数配置----------###
# 邮箱的IMAP服务器地址
imap_host = 'smtp.qq.com'
# 邮箱用户名
username = 'msgnotification@qq.com'
# 邮箱密码
password = 'xzcvrcavnpwzdgic'
###----------4、主体程序----------###

def sendMail(name='SoftNotify', title='标题', context='内容'):
    # 设置发件人和收件人
    sender = username
    receiver = "2842878729@qq.com"
    print("Send mail to: ", receiver)
    # 使用类MIMEMultipart，创建一个实例对象message
    message = MIMEMultipart()
    # 将主题写入 message["Subject"]
    message["Subject"] = Header(title)
    # 将发件人信息写入 message["From"]
    message["From"] = Header(f"{name}   <{sender}>")
    # 将收件人信息写入 message["To"]
    message["To"] = Header(f"通知邮箱<{receiver}>")

    # 4、构建正文
    # 设置邮件的内容，赋值给变量textContent
    textContent = context
    # 编辑邮件正文：使用类MIMEText，创建一个实例对象mailContent
    mailContent = MIMEText(textContent, "plain", "utf-8")

    # 添加正文：调用对象message的attach()方法，传入正文对象mailContent作为参数
    message.attach(mailContent)
    # 添加附件：调用对象message的attach()方法，传入附件对象attachment作为参数
    # message.attach(attachment)
    # print(message.as_string())

    server = smtplib.SMTP_SSL(imap_host, 465)
    # 登陆
    server.login(username, password)
    # 发送邮件
    server.sendmail(username, receiver, message.as_string())
    server.quit()

    print("Notification sent!")


if __name__ == '__main__':
    if len(sys.argv) == 4:
        name = sys.argv[1]
        title = sys.argv[2]
        context = sys.argv[3]
        sendMail(name=name, title=title, context=context)
    else:
        sendMail()